Improving Software Project Management Skills Using a Software Project Simulator
نویسندگان
چکیده
Software project management skills are becoming an important component of software engineering education. Software engineers working in teams need to carefully plan and coordinate their efforts in order to be successful. Unfortunately, most universities provide inadequate education in software project management. Most use lecture-based approaches which provide the necessary steps in software project management, but are deficient in providing the students with hands-on experience. Software project simulation provides a bridge between course-based and hands-on experience. It provides an interactive environment of repeatable exercises. It also provides a medium for measurable evaluation of student performance which can be used to customize the education process to fit the needs of individual students. Our work focuses on using system dynamics modeling for simulating software development activities because of its ability to dynamically represent relevant project attributes in the software development process. A system dynamics model of the incremental software development process has been developed and validated. This paper describes a process for utilizing this system dynamics model to create simulation environments suitable for addressing specific education objectives. Benefits and guidelines for use of a tool of this kind are provided. Our experience with using this tool in a large class is also described. 1: Background 1.1: Why Focus on Software Project Management? There is a clear need for effective software project management. The “software crisis”, the long proclaimed ineffectiveness of software development projects to maintain their schedule, cost, and quality, continues to plague most development projects [3][5]. However, many of these projects may not have been a failure if certain common project management pitfalls had been avoided. Barry Boehm notes in [3], “Poor management can increase software costs more rapidly than any other factor.” Moreover, both Capers Jones and Joyce Statz note inadequate project management training and inadequate standards with which to judge project management performance as the root causes of poor project management [5][8]. A standard for judging project management performance is needed because it is difficult to improve an activity without a method for evaluating that activity’s performance. 1.2: How Can Software Project Management Training Be Improved? Software project management involves, among other tasks: planning, tracking, and control of a software development project. These abilities require two things: knowledge, such as knowing common project management pitfalls, and skills, such as the ability to recognize those pitfalls and formulate a new project plan. The methods by which software project management skills are improved in an academic environment are summarized as: • Texts and Journals, • Facilitated Video, • Lecture and Discussion, • Computer Simulation, • Model Project, and • a combination of these, such as a typical software course consisting of reading, lecture, and a model project. These different methods can be compared in terms of their ability to educate (i.e. each method’s effectiveness) and their practical costs (i.e. each method’s efficiency). The motivation for exploring computer simulation as a software project management training vehicle is best introduced by the following analogy. Software project management is a highly complex, ongoing process similar to flying a plane in rough conditions. A pilot must plan the course, continually track progress, monitor the condition of the plane, and react to problems as they are encountered. Pilots are often trained in flight simulators which provide the pilot with experience in many different scenarios without the high risk and expense of learning using a real plane. A pilot could not be expected to learn piloting skills from a text or instructor alone, because a pilot needs hands-on, active experience to become effective. Similarly, hands-on, active experience is needed to build effective project management skills. The basis for this flight simulation analogy was given in [7] which was built upon the system dynamics modeling of the software development process documented in [1]. An analysis of the advantages and effort required to apply the computer simulation approach to software project management training is given in Section 4. The next section introduces system dynamics models which are used as the simulation engine of this research effort. 2: System Dynamics Modeling The system dynamics approach to modeling complex systems was first introduced in the late 1950’s at M.I.T.’s Sloan School of Management [4]. The first widely recognized application of this modeling approach to software development processes was presented in [1]. Many other modeling approaches are applicable to modeling software development processes; however, system dynamics modeling provides the ability to capture all relevant attributes of the software development process, product, and personnel which relate to the planning, tracking, and control involved in software project management. In any modeling approach, the boundaries of what is to be modeled must be defined. For software project management training, the model must represent: • process attributes such as the number and overlap of development increments, • product attributes such as product size and complexity, and • personnel attributes such as engineer productivity and schedule pressure. The value of these attributes can change over time based on the cause-effect and quantitative relationships between them -such as the relationship between schedule pressure and engineer productivity. The system becomes very complex as these relationships connect in cycles to form feedback dynamics. These feedback dynamics are both the power of the system dynamics approach and the reason software project management is very difficult [2]. An example system dynamics model is given in Figure 1. The model is designed graphically with each icon storing the value of an attribute of the system that changes over time. An example system dynamics simulation tool user interface is given in Figure 2. Depending upon the purpose of the model, some of the attributes and relationships may be left hidden in the user interface. If the purpose is to learn software development processes, the structure of the model and its inner relationships will be open for the user to modify. If the Figure 2. An example user interface to a system dynamics simulation tool for understanding the inspection process. Undiscovered Code Errors
منابع مشابه
Towards Measuring the Project Management Process During Large Scale Software System Implementation Phase
Project management is an important factor to accomplish the decision to implement large-scale software systems (LSS) in a successful manner. The effective project management comes into play to plan, coordinate and control such a complex project. Project management factor has been argued as one of the important Critical Success Factor (CSF), which need to be measured and monitored carefully duri...
متن کاملDeveloping a Risk Management Model for Banking Software Development Projects Based on Fuzzy Inference System
Risk management is one of the most influential parts of project management that has a major impact on the success or failure of projects. Due to the increasing use of information technology (IT) systems in all fields and the high failure rate of IT projects in software development and production, it is essential to effectively manage these projects is essential. Therefore, this study is aimed t...
متن کاملResilient Project Management, A New Approache to Develop Project Management Knowledge (Case Study: Infrastructure Civil Projects Management)
Accepetance of the fact that the working context of civil projects is challenging can enhance the resiliency capacity and will increase the project management concentration for improving and developing the software and hardware capabilities to facilitate project success achievement. This article is documented based on a research results in macro-hydropower plants projects management context to ...
متن کاملSoftware process simulation for reliability management
This paper describes the use of a process simulator to support software project planning and management. The modeling approach here focuses on software reliability, but is just as applicable to other software quality factors, as well as to cost and schedule factors. The process simulator was developed as a part of a decision support system for assisting project managers in planning or tailoring...
متن کاملTeac Hing Sof Tware Projec T M Anagem Ent by Sim Ulation: the Sesam Projec T
Improving the software process is a very popular topic both for research, and for software managers in industry. The usual way is top down, starting from a general process model. Any low level decision in the project is somehow influenced, or even determined, from the process model. In SESAM (Software Engineering Simulation by Animated Models), we take the opposite approach: We model the compon...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1997